package com.tdrc.common.service;

import com.tdrc.common.beans.Permission;
import com.tdrc.common.beans.User;

import java.util.List;
import java.util.Map;

/**
 * @author Administrator
 */
public interface IUserService {
    /**
     * 添加用户
     * @param user
     */
    void addUser(User user);
    /**
     * 更新用户
     * @param user
     */
    void updateUser(User user);
    /**
     * 删除用户
     * @param userId
     */

    void deleteUser(Integer userId);
    /**
     * 分页用户列表
     * @param map
     * @return
     */
    List<Map<String,Object>> listPageUser(Map<String,Object> map);
    /**
     * 判断登录名称是否重复
     * @param logName
     * @return
     */
    long checkLogNameUnique(String logName);
    /**
     * 判断用户名是否重复
     * @param userName
     * @return
     */
    long checkUserNameUnique(String userName);

    /**
     *更新用户状态
     * @param user
     */
    void updateUserStatus(User user);
    /**
     * 根据用户ID查询角色及角色选中的状态
     * @param userId
     * @return
     */
    List<Map<String,Object>>getRoleList(Integer userId);
    /**
     * 根据用户ID删除配置角色
     * @param userId
     * @return
     */
    int deleteUserRoleByUserId(Integer userId);

    /**
     * 给用户添加角色配置
     * @param roles
     * @param userId
     */
    void addUserRole(List<Integer> roles,Integer userId);
    /**
     * 根据账号查找用户
     * @param logName
     * @return
     */
    User getUserByLogName(String logName);
    /**
     * 根据有用户ID获取角色
     * @param userId
     * @return
     */
    List<Permission> getRolesByUserId(Integer userId);
    /**
     * 获取用户信息
     * @param userId
     * @return
     */
    Map<String,Object> getUserInfo(Integer userId);
}
